perm filename FSMON.FAI[SS,SYS] blob sn#687410 filedate 1982-12-05 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	TITLE FSMON
C00006 ENDMK
C⊗;
TITLE FSMON

A←1
B←2
C←3
D←4
E←5
S←6

T←10
TT←11
TTT←12

P←17

GO:	RESET
	MOVE P,[-100,,PDL-1]
	SETZM ZERBEG
	MOVE A,[ZERBEG,,ZERBEG+1]
	BLT A,ZEREND-1
	MOVE A,[100,,300*40+10]	;100 LOW PAGES, HI PAGES START AT 300
	GETHI A,
	JRST 4,.
	PUSHJ P,SYMGET
	MOVE A,ASYSTOP
	MOVE A,400000(A)
	MOVEM A,SYSTOP
	MOVE A,AFSTOP
	MOVE A,400000(A)
	MOVEM A,FSTOP
	SUB A,SYSTOP		;SIZE OF FS
	MOVN A,A
	HRLZ A,A
	HRR A,SYSTOP
	ADDI A,500000-300000	;AOBJN POINTER TO FS
	SETZB B,T
;	MOVE D,SFGFS
;	ADDI D,400001
;	MOVE D,IMPRTR
;	ADDI D,400001
COMMENT ⊗
	MOVE D,MAKPDL
	ADDI D,400001
LOOP:	HLRZ C,(A)
	CAIE C,(D)
LOOP1:	AOBJN A,LOOP
	JUMPGE A,DONE
	ADDI B,1
	HRRZ TT,(A)
	HLRZ TT,500000-300000(TT)
	TRZE TT,400000
	ADDI T,(TT)
	JRST LOOP1
⊗
	HRRZ A,A		;START OF FS
	MOVE TTT,[-200,,LIST-1]
	SETZM LISTCT#
LOOP:	MOVEI B,-500000+300000(A)
	LDB B,[POINT 9,B,26]
	LDB T,[POINT 9,404000(B),26]	;CORTAB ENTRY
	CAIE T,105
	JRST LOOP1
	SKIPL T,(A)
	JRST LOOP2
	HLRZ TT,T
	SUBI TT,400000
	HLRZ S,500000-300000(T)
	SUBI S,400000		;SIZE
	PUSHJ P,LISTIT
	MOVEI A,500000-300000+1(T)
	JRST LOOP3

LOOP2:	HLRZ S,500000-300000(T)
	ADDM S,FREE
	MOVEI A,500000-300000+1(T)
	JRST LOOP3

LOOP1:	ADDI A,1000
LOOP3:	MOVEI B,-500000+300000(A)
	CAMGE B,FSTOP
	JRST LOOP
	MOVEI B,0
	MOVN C,LISTCT
	HRLZ C,C
LOOP4:	ADD B,SIZE(C)
	AOBJN C,LOOP4

DONE:	JRST DDT↑

LISTIT:	MOVN C,LISTCT
	JUMPE C,LISTI1
	HRLZ C,C
LISTI2:	CAME TT,LIST(C)
	AOBJN C,LISTI2
	JUMPL C,LISTI3
LISTI1:	AOS LISTCT
	PUSH TTT,TT
	MOVEI C,-LIST(TTT)
LISTI3:	ADDM S,SIZE(C)
	POPJ P,

SYMGET:	MOVSI T,-NSYMS
SYMGT1:	MOVE A,SYMNAM(T)
	MOVEI B,0
	MOVEI C,A
	.SYML C,
	JRST 4,.
	MOVEM C,SYMVAL(T)
	AOBJN T,SYMGT1
CPOPJ:	POPJ P,

SYMNAM:	RADIX50 0,SFGFS
	RADIX50 0,SYSTOP
	RADIX50 0,FSTOP
;	RADIX50 0,IMPRTR
	RADIX50 0,MAKPDL
NSYMS←←.-SYMNAM

SYMVAL::
SFGFS:	0
ASYSTOP:0
AFSTOP:	0
;IMPRTR:	0
MAKPDL:	0

SYSTOP:	0
FSTOP:	0
ZERBEG::
LIST:	BLOCK 200
SIZE:	BLOCK 200
FREE:	0
ZEREND::

PDL:	BLOCK 100
	END GO